<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>字符串练习</title>
  </head>

  <body>
    <script>
      // 1. 封装一个函数实现字符串翻转。
      function f(arr){
        let a=''
        for(let i=arr.length-1;i<-1;i--){
          a[a.length]=arr[i]
        }
        return a
      }
      // 2. 字符串 digite = "0123456789", 把前 5 个字符分割出来， 返回个单字符的数组, 注意， 返回数组里面的数字是字符串类型, string.split()
      // let digite = '0123456789';
      // console.log(digite.split('56789',1));

      // 3.已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”.

      // let str3 = 'get-element-by-id';
      // let a=str3.split('-',4)
      // console.log(
      // a.map(function(v,i){
      //   if(i!=0)
      //   v=v[0].toUpperCase()+v.substring(1)
      //   return v
      // }).join(""))      

      // 4.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"的下标输出(用 indexof())

      let str4 = '今天是什么鬼天气，这么热，明天要去游泳！';
      function f4(a,b){
        let n=m=0
        for(let i=0;i<a.length;i++){
          if(a[i]===b)m++
        }
        for(let i=0;i<m;i++){
          console.log(str4.indexOf("天",n));
          n=str4.indexOf("天",n)+1
        }
      }
      //f4(str4,'天')
   
      // 5.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"替换成"日"(用 replace())

      let str5 = '今天是什么鬼天气，这么热，明天要去游泳！';
      function f5(a,b,c){
        let m=0
        for(let i=0;i<a.length;i++){
          if(a[i]===b)m++
        }
        for(let i=0;i<m;i++){
          a=a.replace(b,c)
        }
        console.log(a);
      }
      //f5(str5,'天','日')

      // 6.解析 URL Params 为对象，例如(https://www.baidu.com/s?ie=UTF-8&wd=letcode)
      // 返回结构如下:
      // {
      //     ie:"UTF-8",
      //     wd:"letcode"
      // }
      let url = 'https://www.baidu.com/s?ie=UTF-8&wd=letcode';
      function f6(){
      let s=url.substring(url.indexOf('?')+1)
      let i1=s.indexOf('=')
      let i2=s.indexOf('&')
      let i3=s.lastIndexOf('=')
      let o=new Object()
      o.ie=s.substring(i1+1,i2)
      o.wd=s.substring(i3+1)
      console.log(o);
      }
      //f6()
      // 7.查找字符串中(abbcccddddd)出现最多的字符和个数
      let str7 = '112223da44'//'abbcccddddd';
      function f7(){
        let s=ss=[],str='',n=0,max=1
        for(let i=0;i<str7.length;i++){
          if(str7.indexOf(str7[i])!=str7.lastIndexOf(str7[i]))s[s.length]=str7[i]
        }if(s==[])console.log('没有重复的字符');
        s=s.filter(function(v,i){//去重
          return s.indexOf(v)==i
        })
        for(let j=0;j<s.length;j++){
          for(let i=0;i<str7.length;i++){
            if(s[j]==str7[i])n++
          }
          if(n>max){
            max=n
            ss=[]
            ss[0]=s[j]
            ss[1]=max
          }
          if(n==max && ss[0]!=s[j]){
            ss[ss.length]=s[j]
            ss[ss.length]=max
          }
          n=0
        }
        for(let j=0;j<ss.length;j=j+2){
          console.log(`出现最多的字符是${ss[j]},次数为${ss[j+1]}`);
        }
      }
      //f7()
      // 8. "hi javascript hi hello world!" 改成 "Hi Javascript! Hi Hello World!"

      let str8 = 'hi javascript hi hello world!';
      function f8(){
      let a=str8.split(' ')
      str8=a.map(function(v,i){
        v=v[0].toUpperCase()+v.substring(1)
        if(i==1)v+='!'
        return v
      }).join(' ')
      console.log(str8);}
      //f8()
      //10.定义一个函数，检测字符串是否包含指定字符
      //（可以支持多个，只要包含其中一个指定字符就返回结果）
      function f10(str,a) {
        for(let i=0;i<str.length;i++){
          for(let j=0;j<a.length;j++){
            if(str[i]==a[j])return true
          }
        }
        return false
      }
      //console.log(f10('1234',['2',1]))
    </script>
  </body>
</html>
